<?php

/**
 * Clase tipo Proxy para aislar la implementación de
 * la base de datos de la aplicación.
 *
 * Autor : Casiva Agustin
 */
abstract class DataObject {
  private $dbd;

  function __construct(){      
    $this->connect();    
  }

  /**
   * Conecta a la Base de Datos
   */
  public function connect($db_name = null, $db_host = null, $db_usr = null, $db_pwd = null){
    $this->dbd = new MsSqlDriver();

    $this->dbd->connect($db_name, $db_host, $db_usr, $db_pwd);
  }

  /**
   * Realiza una Query basada en SELECT, devuelve
   * un arreglo con los resultados
   *
   * @param string $sql
   * @return array
   */
  public function doQuery($sql){
    $result = $this->dbd->query($sql);
    $data = array();
    while($reg = $this->dbd->fetch($result)){
      $data[] = $reg;
    }
    return $data;
  }
  
  /**
   * Realiza una Query basada en SELECT, devuelve
   * un arreglo con el primer registro
   * 
   * @param string $sql
   * @return Array
   */
  public function doQueryOne($sql){
    $result = $this->dbd->query($sql);
    return $this->dbd->fetch($result);
  }
}
?>
